package com.pro.service.imple;

import com.pro.mapper.JsCourseMapper;
import com.pro.pojo.JsCourse;
import com.pro.pojo.JsonData;
import com.pro.service.JsCourseService;
import com.pro.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * @Author 祖铭泽
 * @Date 2022/1/12/0012
 * @description 课程 业务层 实现类
 */
@Service
public class JsCourseServiceImple implements JsCourseService {
    @Autowired
    private JsCourseMapper jsCourseMapper;
    /**
     * @Author 祖铭泽
     * @Date 2022/1/12/0012
     * @description 根据课程分类、课程名称、课程现价查询所有课程
     */
    @Override
    public JsonData getCourses(JsCourse jsCourse) {
        jsCourse.setRecordType(2);
        jsCourse.setResult(2);
        List<JsCourse> courses = jsCourseMapper.getCourses(jsCourse);
        return courses != null ? JsonData.buildSuccess(courses) : JsonData.buildError("查询失败");
    }

    /**
     * @Author 祖铭泽
     * @Date 2022/1/13/0012
     * @description 根据课程id修改上架状态
     */
    @Override
    public JsonData updateCourseStatus(JsCourse jsCourse) {
        jsCourse.setUpdateDate(DateUtils.tranferDateTimeToString(new Date()));
        boolean updateCourseStatus = jsCourseMapper.updateCourseStatus(jsCourse);
        return updateCourseStatus ? JsonData.buildSuccess(updateCourseStatus) : JsonData.buildError("修改失败");
    }
    /**
     * @Author 祖铭泽
     * @Date 2022/1/13/001
     * @description 查询课程分类下是否还有课程
     */
    @Override
    public JsonData getClassLowerCourseCount(JsCourse jsCourse) {
        Integer classLowerCourseCount = jsCourseMapper.getClassLowerCourseCount(jsCourse);
        return classLowerCourseCount != null ? JsonData.buildSuccess(classLowerCourseCount) : JsonData.buildError("查询失败");
    }
    /**
     * @Author 祖铭泽
     * @Date 2022/1/13/001
     * @description 根据分类id查询分类下的课程
     */
    @Override
    public JsonData getCoursesByClassId(JsCourse jsCourse) {
        jsCourse.setRecordType(2);
        jsCourse.setResult(2);
        List<JsCourse> coursesByClassId = jsCourseMapper.getCoursesByClassId(jsCourse);
        return coursesByClassId != null ? JsonData.buildSuccess(coursesByClassId) : JsonData.buildError("查询失败");
    }
    /**
     * @Author 祖铭泽
     * @Date 2022/1/13/001
     * @description 根据id删除课程
     */
    @Override
    public JsonData deleteCourseByCourseId(JsCourse jsCourse) {
        boolean deleteCourseByCourseId = jsCourseMapper.deleteCourseByCourseId(jsCourse);
        return deleteCourseByCourseId ? JsonData.buildSuccess(deleteCourseByCourseId) : JsonData.buildError("删除失败");
    }
    /**
     * @Author 祖铭泽
     * @Date 2022/1/13/001
     * @description 高级检索 根据课程名称、课程分类、课程id、课程现价、课程上传人、课程关键字查找课程
     */
    @Override
    public JsonData getCoursesCheck(JsCourse jsCourse) {
        jsCourse.setRecordType(2);
        jsCourse.setResult(2);
        List<JsCourse> coursesCheck = jsCourseMapper.getCoursesCheck(jsCourse);
        return coursesCheck != null ? JsonData.buildSuccess(coursesCheck) : JsonData.buildError("查询失败");
    }
    /**
     * @Author 祖铭泽
     * @Date 2022/1/14/001
     * @description 根据课程id查看课程详细信息
     */
    @Override
    public JsonData getCourseByCourseId(JsCourse course) {
        JsCourse courseByCourseId = jsCourseMapper.getCourseByCourseId(course);
        return courseByCourseId != null ? JsonData.buildSuccess(courseByCourseId) : JsonData.buildError("查询失败");
    }
    /**
     * @Author 祖铭泽
     * @Date 2022/1/14/001
     * @description 根据课程id修改课程信息
     */
    @Override
    public JsonData updateCourseByCourseId(JsCourse jsCourse) {
        jsCourse.setUpdateDate(DateUtils.tranferDateTimeToString(new Date()));
        boolean updateCourseByCourseId = jsCourseMapper.updateCourseByCourseId(jsCourse);
        return updateCourseByCourseId ? JsonData.buildSuccess(updateCourseByCourseId) : JsonData.buildError("更改失败");
    }
    /**
     * @Author 祖铭泽
     * @Date 2022/1/15/001
     * @description 根据课程关键字、课程名称、课程现价查询自己的课程
     */
    @Override
    public JsonData getSelfCourses(JsCourse jsCourse) {
        List<JsCourse> selfCourses = jsCourseMapper.getSelfCourses(jsCourse);
        return selfCourses != null ? JsonData.buildSuccess(selfCourses) : JsonData.buildError("查询失败");
    }
    /**
     * @Author 祖铭泽
     * @Date 2022/1/15/001
     * @description 高级检索 根据课程名称、课程分类、课程id、课程现价、课程上传人、课程关键字查找自己的课程
     */
    @Override
    public JsonData getSelfCoursesCheck(JsCourse jsCourse) {
        List<JsCourse> selfCoursesCheck = jsCourseMapper.getSelfCoursesCheck(jsCourse);
        return selfCoursesCheck != null ? JsonData.buildSuccess(selfCoursesCheck) : JsonData.buildError("查询失败");
    }
    /**
     * @Author 祖铭泽
     * @Date 2022/1/20/001
     * @description 添加课程
     */
    @Override
    public JsonData addCourse(JsCourse jsCourse) {
        jsCourse.setCreateDate(DateUtils.tranferDateTimeToString(new Date()));
        boolean addCourse = jsCourseMapper.addCourse(jsCourse);
        return addCourse ? JsonData.buildSuccess(jsCourse) : JsonData.buildError("添加失败");
    }
}
